<?php
App::uses('File', 'Utility');
class BeneficiosAdministrativosSedesController extends AppController 
{
	
	public $uses = array('BeneficiosAdministrativo','Sede','BeneficiosAdministrativosSede');
	
	public $bandera = true;
	
	#---------------------------------------------------#
	#---------------Funciones Principales---------------#
	#---------------------------------------------------#
	
	public function index()  
	{
		$this->layout = 'default_ini';	
	}
	
	public function add_beneficio()
	{
		$this->layout = 'default_ini';		
		if($this->request->is('post') || $this->request->is('put'))
		{
			$this->postAddBeneficio();
				
		}
	}
	
	public function assign_add_beneficio($id_beneficio_adm)
	{
		$this->layout = 'default_ini';	
		if ($id_beneficio_adm == "")
		{
			$this->Session->setFlash(__('Error id_beneficio'));
		}
		elseif (!is_numeric($id_beneficio_adm))
		{
			$this->Session->setFlash(__('Error numerico id_beneficio'));
		}
		else
		{
			if ($this->validar_existente_beneficio($id_beneficio_adm))
			{
				
				$this->llenar_info_add_assign_beneficio_administrativo($id_beneficio_adm);
				if($this->request->is('post') || $this->request->is('put'))
				{
					$this->postAssignAddBeneficio();

				}
					
			}
			else 
			{
				$this->setMessageFlash(2, 'Error Beneficio no existe', null);
			}
		}
			
		
		
	}
	
	public function assign_beneficio()
	{
		$this->layout = 'default_ini';	
		if($this->request->data == null)
		{
			$this->set('valor',1);
			$this->llenar_info_assign_beneficio_administrativo(1);
		}
		else 
		{
			$this->llenar_info_assign_beneficio_administrativo($this->request->data['BeneficiosAdministrativosSede']['valor']);
		}
		
		
		if($this->request->is('post') || $this->request->is('put'))
		{
			$this->postAssignBeneficio();
		}
	}
	
	public function consult_beneficio_administrativo()
	{
		$this->layout = 'default_ini';	
		$this->llenar_combobox_sede(1);
		
	}
	
	public function consult_beneficio_administrativo1($sede_id,$nombre_beneficio_adm = null)
	{
		$this->layout = 'default_ini';	
		if ($nombre_beneficio_adm == "")
		{
			$this->Session->setFlash(__('error nombre_beneficio_adm'));
		}
		if ($sede_id == "")
		{
			$this->Session->setFlash(__('error sede_id'));
		}
		else
		{
			$this->infoConsultBeneficioAdministrativo($sede_id,$nombre_beneficio_adm);
			if($this->request->is('post') || $this->request->is('put'))
			{
				$this->postConsultBeneficioAdministrativo();
			}
		}
	}
	
	public function edit_beneficio_administrativo ($id_beneficio_adm_sede = null)
	{
		$this->layout = 'default_ini';	
		if($id_beneficio_adm_sede == "")
		{
			$this->Session->setFlash(__('error id_beneficio_adm_sede'));
		}
		else 
		{
			$this->llenarInfoBeneficioAdministrativo(1, $id_beneficio_adm_sede);
			if($this->request->is('post') || $this->request->is('put'))
			{
				$this->postEditBeneficioAdministrativo_normal($this->request->data);
			}
			
		}
	}
	
	public function detalle_beneficio_administrativo ($id_beneficio_adm_sede = null)
	{
		$this->layout = 'default_ini';	
		if($id_beneficio_adm_sede == "")
		{
			$this->Session->setFlash(__('error id_beneficio'));
		}
		else 
		{
			$this->llenarInfoBeneficioAdministrativo(2, $id_beneficio_adm_sede);
		}
	}
	
	public function delete_beneficio_administrativo_sede($id_beneficio,$id_val = null)
	{
		
		if($id_beneficio == "")
		{
			$this->Session->setFlash(__('error id_beneficio'));
		}
		elseif ($id_val == "")
		{
			$this->Session->setFlash(__('error $id_val null'));
		}
		else 
		{
			if($id_val == 1)
			{
				if($this->delete_single_beneficio_administrativo_sede($id_beneficio))
				{
					$this->setMessageFlash(1,'Se borro el Beneficio satisfactoriamente', null);
				}
				else 
				{
					$this->setMessageFlash(2,'No se pudo borrar la Beneficio', null);
				}
			}
			elseif ($id_val == 2) 
			{
					
				if($this->length_arreglo_beneficio_adm($id_beneficio) > 2)
				{
					$this->delete_multiples_beneficio_administrativo_sede($id_beneficio);
				}
				elseif ($this->length_arreglo_beneficio_adm($id_beneficio) == 2) 
				{
					$beneficio_adm = explode(',', $id_beneficio);
					if($this->delete_single_beneficio_administrativo_sede($beneficio_adm[1]))
					{
						$this->setMessageFlash(1,'Se borro el Beneficio satisfactoriamente', null);
					}
					else 
					{
						$this->setMessageFlash(2,'No se pudo borrar la Beneficio', null);
					}
				}
			}
			else 
			{
				$this->setMessageFlash(2, 'error id_val', null);
			}
			
		}
	}
	
	
	#---------------------------------------------------#
	#---------------Funciones Secundarias---------------#
	#---------------------------------------------------#
	private function setMessageFlash($id,$mensaje,$nombre_mensaje)
	{
		if (is_null($nombre_mensaje))
		{
			$nombre_mensaje = 'flash';
		}
		switch ($id) 
		{
			case 1: // mensaje bueno
				$this->Session->setFlash($mensaje,'default',array('class'=>'success'),$nombre_mensaje);
				break;
			case 2: // mensaje malo
				$this->Session->setFlash($mensaje,'default',array('class'=>'error-message'),$nombre_mensaje);
				break;
			case 3: // mensaje cuidado
				$this->Session->setFlash($mensaje,'default',array('class'=>'notice'),$nombre_mensaje);
				
				break;
			
			default:
				
				break;
		}
	}
	
	public function getGridConsultBeneficioAdministrativoSede($sede_id,$nombre_beneficio_adm)
	{
		
		$this->layout = false;
		if ($this->request->is('get')) 
		{
			$this->llenar_beneficio_administrativo($sede_id,$nombre_beneficio_adm);
			$this->render('/Elements/GridConsultBeneficioAdministrativoSede');
		}
		
	}
	
	public function getDetalleBeneficioSede($id_beneficio_adm_sede)
	{
		$this->layout = false;
		if ($this->request->is('get')) 
		{
			$this->llenarInfoBeneficioAdministrativo(2, $id_beneficio_adm_sede);
			$this->render('/Elements/GetDetalleBenificioSede');
		}
	}
	
	public function getErrors($errors)
	{
		$errores_view = '';
		
		if (array_key_exists('sede_id', $errors))
		{
			$errores_view = $errores_view .'|'.'Sede'.'++'.$errors['sede_id'][0];
		}
		if (array_key_exists('codigo_articulo', $errors))
		{
			$errores_view = $errores_view .'|'.'Codigo del Articulo'.'++'.$errors['codigo_articulo'][0];
		}
		if (array_key_exists('tipo_articulo_id', $errors))
		{
			$errores_view = $errores_view .'|'.'Tipo del Articulo'.'++'.$errors['tipo_articulo_id'][0];
		}

		return $errores_view;
		
		
	}
	public function parserError($error)
	{
		$array_error = array();	
			
		$string_error = explode('|', $error);
		
		for ($i = 0; $i < count($string_error); $i++)
		{
			if ($i != 0)
			{
				$string_problema = explode('++',$string_error[$i]);
					
				array_push($array_error,array(
												'campo' => $string_problema[0],
												'error' => $string_problema[1],
												)
							);
			}
			
		}
		return $array_error;
	}
	
	public function getEditBeneficioSede($id_beneficio_adm_sede,$error = null)
	{
		$this->layout = false;
		
		if ($this->request->is('get')) 
		{
			$this->llenarInfoBeneficioAdministrativo(1, $id_beneficio_adm_sede);
			
			if ($error)
			{
				$this->set('errors',$this->parserError($error));	
			}
			else
			{
				$this->set('errors',null);	
			}
			
			$this->render('/Elements/GetEditBenificioSede');
		}
		elseif ($this->request->is('post') || $this->request->is('put') )
		{
			
			$info_beneficio_sede = array( 
										'BeneficiosAdministrativosSede'=> array(
															'id' => $this->request->data['id'],
															
															'sede_id' => $this->request->data['sede_id'],
															'direcciones_pasos_beneficio' => $this->request->data['direcciones_pasos_beneficio_char'],
															'direcciones_pasos_beneficio_upload' => array(
																						'name' => $this->request->data['direcciones_pasos_beneficio_name'],
																						'type' => $this->request->data['direcciones_pasos_beneficio_type'],
																						'tmp_name' => 'D:\xampp\tmp\php123456.tmp',
																						'error' => intval('0'),
																						'size' => intval($this->request->data['direcciones_pasos_beneficio_size'])
																					),
															'direcciones_pasos_beneficio_dir' => $this->request->data['direcciones_pasos_beneficio_dir'],
															'direcciones_pasos_beneficio_viejo' => $this->request->data['direcciones_pasos_beneficio_viejo'],
															'direcciones_pasos_beneficio_valor_file' => $this->request->data['direcciones_pasos_beneficio_valor_file']
															
														) 
										
									);


			
			$this->postEditBeneficioAdministrativo($info_beneficio_sede);
		}
		
	}
	
	function saveFile($data, $id_beneficio, $beneficio_nombre)
	{

		 $str_data = explode(',', $data);
		 
		 $file = $this->base64_to_pdf( $str_data[1], 
	 									WWW_ROOT."files/beneficios_administrativos_sede/direcciones_pasos_beneficio/"
										.$id_beneficio.'/'.$beneficio_nombre );
	
	}
	
	function base64_to_pdf( $base64_string, $output_file ) 
	{
	    $ifp = fopen( $output_file, "wb+" ); 
	    fwrite( $ifp, base64_decode( $base64_string) ); 
	    fclose( $ifp ); 
	    return( $output_file ); 
	}
	
	private function asignar_beneficios_asminsitrativos()
	{
		
		$array_beneficio_add = array( 'BeneficiosAdministrativosSede' => array(
																					'beneficios_administrativos_id' => $this->request->data['BeneficiosAdministrativo']['beneficios_id'],
																					'sede_id' => $this->request->data['BeneficiosAdministrativo']['sede_id'],
																					'direcciones_pasos_beneficio' => $this->request->data['BeneficiosAdministrativosSede']['direcciones_pasos_beneficio']
																				)
									);
			
		return $this->BeneficiosAdministrativosSede->save($array_beneficio_add);
			
	}
	
	private function postAssignBeneficio()
	{
		
		if($this->request->data['BeneficiosAdministrativosSede']['valor'] == 1)
		{
			$id_benififcio = $this->request->data['BeneficiosAdministrativosSede']['beneficios_administrativos_id'];
			$id_sede = $this->request->data['BeneficiosAdministrativosSede']['sede_id'];
			if($this->validar_existente_beneficio_en_sede($id_sede,$id_benififcio))
			{
			
				$this->set('valor',2);
				
				$id_beneficio = $this->request->data['BeneficiosAdministrativosSede']['beneficios_administrativos_id'];
				$id_sede = $this->request->data['BeneficiosAdministrativosSede']['sede_id'];
				$sede = $this->Sede->findById($id_sede);
				$beneficio = $this->BeneficiosAdministrativo->findById($id_beneficio);						
				$this->set('sede_id',$id_sede);
				$this->set('beneficio_id',$id_beneficio);
				$this->set('nombre_sede',$sede['Sede']['nombre_sede']);
				$this->set('nombre_beneficio',$beneficio['BeneficiosAdministrativo']['nombre_beneficio_administrativo']);
			
			}
			else 
			{
				$beneficio_adm_sede = $this->BeneficiosAdministrativosSede->findAllByBeneficiosAdministrativosIdAndSedeId($id_benififcio,$id_sede);
				$this->redirect(array('action' => 'edit_beneficio_administrativo',$beneficio_adm_sede[0]['BeneficiosAdministrativosSede']['id']));
			}
		}
		elseif($this->request->data['BeneficiosAdministrativosSede']['valor'] == 2)
		{

			if($this->asignar_beneficios_asminsitrativos())
			{
				$this->setMessageFlash(1, 'Se asigno el beneficio a la respectiva sede', null);
				$this->redirect(array(	'controller' => 'BeneficiosAdministrativos',
										'action' => 'index'));
			}
			else 
			{
				$this->set('valor',2);
				$this->setMessageFlash(2, 'No se pudo asignar el beneficio a la respectiva sede', null);
			}
		
		}
		
		
	}
	
	private function eliminar_beneficio_administrativo_sede($id_beneficio_administrativo_sede)
	{
		try
		{
			$this->BeneficiosAdministrativo->query('DELETE FROM beneficios_administrativos_sedes WHERE id = '.$id_beneficio_administrativo_sede);
			return true;
		}
		catch (Exception $e)
		{
			return false;
	
		}
	}
	
	private function length_arreglo_beneficio_adm($arreglo_beneficio_adm)
	{
		$beneficios_adm = explode(',', $arreglo_beneficio_adm);
		return count($beneficios_adm);
	}
	
	private function delete_single_beneficio_administrativo_sede($id_beneficio_administrativo_sede)
	{
			return $this->eliminar_beneficio_administrativo_sede($id_beneficio_administrativo_sede);
	}
	
	private function delete_multiples_beneficio_administrativo_sede($id_beneficio_administrativo_sede)
	{
			
		$beneficios_adm = explode(',', $id_beneficio_administrativo_sede);
		
		$buenas = array();
		$malas = array();
		
		foreach ($beneficios_adm as $beneficio_adm) 
		{
			if($beneficio_adm != "")
			{
				
				if($this->eliminar_beneficio_administrativo_sede($beneficio_adm))
				{
					array_push($buenas,$beneficio_adm);
				}
				else 
				{
					array_push($malas,$beneficio_adm);
				}
				
				
			}
		}
		if ($buenas != null )
		{
			if ($malas != null)
			{
				$this->setMessageFlash(2,'No se borraron los beneficios de la LOTTT  seleccionadas ', null);
				// significa que varias se pudieron eliminar, otras no.
			}
			else 
			{
				$this->setMessageFlash(1,'Se borraron los beneficios de la LOTTT seleccionados', null);
				// significa que todas se pudieron eliminar.
			}
		}
		else 
		{
			if ($malas != null)
			{
				$this->setMessageFlash(2,'No se borraron los beneficios de la LOTTT seleccionados', null); 
				//significa que no se puedieron eliminar ninguna
			}
			else 
			{
				$this->setMessageFlash(2,'error al borrar', null);
				// error
			}
		}
		
		
		
	}
	
	private function validar_existente_beneficio($id_beneficio_adm)
	{
		$beneficio_administrativo = $this->BeneficiosAdministrativo->findAllById($id_beneficio_adm);
		
		if ($beneficio_administrativo == null)
		{
			return false;	
		}
		else 
		{
			
			return true;
		}
	}
	
	private function validar_existente_beneficio_en_sede($id_sede,$id_benificio_administrativo)
	{
		$beneficio_adm_sede = $this->BeneficiosAdministrativosSede->findAllByBeneficiosAdministrativosIdAndSedeId($id_benificio_administrativo,$id_sede);	
		if ($beneficio_adm_sede != null)
		{
			
			return false;	
		}
		else 
		{
		
			return true;
		}
	}
	
	private function postAssignAddBeneficio()
	{
		$id_benififcio_administrativo = $this->request->data['BeneficiosAdministrativosSede']['beneficios_administrativos_id'];
		$id_sede = $this->request->data['BeneficiosAdministrativosSede']['sede_id'];
		
		if ($this->validar_existente_beneficio_en_sede($id_sede,$id_benififcio_administrativo))
		{
			if($this->BeneficiosAdministrativosSede->save($this->request->data))
			{
				$this->setMessageFlash(1, 'Se asigno el beneficio', null);
				$this->redirect(array(
										'controller' => 'BeneficiosAdministrativos',
										'action' => 'index'));
			}
			else
			{
				$this->setMessageFlash(2, 'No se asigno el beneficio', null);	
			}
		}
		else 
		{
			$this->setMessageFlash(2, 'No se asigno el beneficio debido a que se encuentra asignado a la sede', null);	
		}
		
		
	}

	private function llenar_info_assign_beneficio_administrativo($id)
	{
		if ($id == 1)
		{
			$this->llenar_combobox_sede(2);
			$beneficios = $this->BeneficiosAdministrativo->find('all');
			
			$this->set('beneficios',$beneficios);
		}
		
		
		
	}
	
	private function llenar_info_add_assign_beneficio_administrativo($id_beneficio_adm)
	{
		$this->llenar_combobox_sede(2);
		$this->llenarInfoBeneficio($id_beneficio_adm);
		
	}
	
	private function llenar_combobox_sede($id)
	{
		$sedes = $this->Sede->find('all');
		
		
		$arreglo = array();
		
		if ($id == 1)
		{
			array_push($arreglo,array(0 => 'Todos') );
		}
		
		foreach ($sedes as $sede) 
		{
				array_push($arreglo,array($sede['Sede']['id'] => $sede['Sede']['nombre_sede']));
		}
		
		$this->set('sedes',$arreglo);

	}
	
	private function length_arreglo_ocio($arreglo_ocio)
	{
		$ocios = explode(',', $arreglo_ocio);
		return count($ocios);
	}
	
	private function proceso_de_act_deact_single ($id_ocio,$id_active)
	{
	
		$ocio = $this->Ocio->findById($id_ocio);
		if ($ocio)
		{
			if ($this->proceso_de_act_deact($id_ocio,$id_active))
			{
				if ($id_active == 1) # proceso de activacion
				{
					$this->setMessageFlash(1, 'Se ha activado el establecimiento', null);
				}
				elseif ($id_active == 2)
				{
					$this->setMessageFlash(1, 'Se ha desactivado el establecimiento', null);
				}
			}
			else 
			{
				$this->setMessageFlash(3, 'No se pudo completar el proceso de Activacion/Desactivacion del establecimiento', null);
			}
		}
		
	}
	
	private function proceso_de_act_deact_multiples($id_ocio,$id_active)
	{
		
		$ocios = explode(',', $id_ocio);
		
		$buenas = array();
		$malas = array();
		
		
		foreach ($ocios as $ocio ) 
		{
			if($ocio != "")
			{
				$ocio_ext = $this->Ocio->findById($ocio);
				if ($ocio_ext) 
				{
					if ($this->proceso_de_act_deact($ocio,$id_active))
					{
						array_push($buenas,$ocio);
					}
					else 
					{
						array_push($malas,$ocio);
					}
				}
			}
		}
		if ($buenas != null )
		{
			if ($malas != null)
			{
				$this->Session->setFlash(__('No se pudo terminar por completo el proceso'));
				return 3; // significa que varias se pudieron eliminar, otras no.
			}
			else 
			{
					
				if ($id_active == 1) # proceso de activacion
				{
					$this->Session->setFlash(__('Se Activo los establecimientos seleccionados'));
				}
				elseif ($id_active == 2)
				{
					$this->Session->setFlash(__('Se Desactivo los establecimientos seleccionados'));
				}
				
				return 1; // significa que todas se pudieron eliminar.
			}
		}
		else 
		{
			if ($malas != null)
			{
				if ($id_active == 1) # proceso de activacion
				{
					$this->Session->setFlash(__(' No Se Activo los establecimientos seleccionados'));
				}
				elseif ($id_active == 2)
				{
					$this->Session->setFlash(__('No Se Desactivo los establecimientos seleccionados'));
				}
				
				return 2; //significa que no se puedieron eliminar ninguna
			}
			else 
			{
				$this->Session->setFlash(__('error al Activar/Desactivar'));
				return 0; // error
			}
		}

	}
	
	private function proceso_de_act_deact($id_ocio,$id_active)
	{
		
		try
		{
			
			if ($id_active == 1) # proceso de activacion
			{
					$this->Ocio->query('UPDATE 
											ocios 
											SET status_ocio = TRUE, 
											fecha_fin = NULL 
											WHERE id = '. $id_ocio);
					return true;
			}
			elseif ($id_active == 2) # proceso de desactivacion
			{		
					$this->Ocio->query('UPDATE 
											ocios 
											SET status_ocio = FALSE, 
											fecha_fin = "'. date("Y-m-d").'" 
											WHERE id = '. $id_ocio);
					return true;
			}
			
		}
		catch (Exception $ee)
		{
			$this->Session->setFlash(__('No Se completo el proceso de Activacion/Desactivacion del ocio(s)'));
			return false;
		}
		
		
		
	}
	
	private function validar_fechas($fecha_inic, $fecha_fin)
	{
		
		if (strtotime($fecha_inic) < strtotime($fecha_fin))
		{
			return true;
		}
		else 
		{
			return false;	
		}
		
		
	}
		private function postEditBeneficioAdministrativo_normal($info_beneficio_sede)
	{
		$this->BeneficiosAdministrativosSede->create();
		
		if ($this->BeneficiosAdministrativosSede->save($info_beneficio_sede))
		{
			if ($info_beneficio_sede['BeneficiosAdministrativosSede']['direcciones_pasos_beneficio'] != 
					$info_beneficio_sede['BeneficiosAdministrativosSede']['direcciones_pasos_beneficio_viejo'])
			{
				$file = new File(WWW_ROOT."files/beneficios_administrativos_sede/direcciones_pasos_beneficio/".
									$this->BeneficiosAdministrativosSede->id."/".
									$info_beneficio_sede['BeneficiosAdministrativosSede']['direcciones_pasos_beneficio_viejo']);
	       		if($file->exists())
				{
					$file->delete();
				}
				
			}
			$this->setMessageFlash(1, 'Se guardo los cambios del Beneficio', null);
			
		}
		else 
		{
			$this->setMessageFlash(2,'No se guardo los cambios del Beneficio', null);
			
		}
		
		
	}
	private function postEditBeneficioAdministrativo($info_beneficio_sede)
	{
		$this->BeneficiosAdministrativosSede->create();
		
		$this->BeneficiosAdministrativosSede->set($info_beneficio_sede);
		
		$error = null;
		
		if ($this->BeneficiosAdministrativosSede->validates()) 
		{
		
			if ($this->BeneficiosAdministrativosSede->save($info_beneficio_sede))
			{
				if ($info_beneficio_sede['BeneficiosAdministrativosSede']['direcciones_pasos_beneficio'] != 
						$info_beneficio_sede['BeneficiosAdministrativosSede']['direcciones_pasos_beneficio_viejo'])
				{
					$file = new File(WWW_ROOT."files/beneficios_administrativos_sede/direcciones_pasos_beneficio/".
										$info_beneficio_sede['BeneficiosAdministrativosSede']['id']."/".
										$info_beneficio_sede['BeneficiosAdministrativosSede']['direcciones_pasos_beneficio_viejo']);
		       		if($file->exists())
		       			$file->delete();
					
					$this->saveFile($info_beneficio_sede['BeneficiosAdministrativosSede']['direcciones_pasos_beneficio_valor_file'],
										$info_beneficio_sede['BeneficiosAdministrativosSede']['id'],
										$info_beneficio_sede['BeneficiosAdministrativosSede']['direcciones_pasos_beneficio']);
				}
				$this->setMessageFlash(1, 'Se guardo los cambios del Beneficio', null);
				
			}
			else 
			{
				$this->setMessageFlash(2,'No se guardo los cambios del Beneficio', null);
				
			}
		}
		else 
		{
		    $this->setMessageFlash(2, 'No se guardo los cambios del Beneficio',null);
			
			$error = $this->getErrors( $this->BeneficiosAdministrativosSede->validationErrors);
			
			
		
		}
		
		$this->redirect(array(
												'controller' => 'BeneficiosAdministrativosSedes',
												'action' => 'getEditBeneficioSede',$this->BeneficiosAdministrativosSede->id,$error
										   )
									 );
		
	}
	
	private function llenarInfoBeneficio($id_beneficio_sede)
	{
		$this->llenar_combobox_sede(2);
		$beneficios_administrativos = $this->BeneficiosAdministrativo->findById($id_beneficio_sede);
		$this->set('beneficios_adm',$beneficios_administrativos);
	}
	
	private function llenarInfoBeneficioAdministrativo($id_busqueda,$id_beneficio_adm_sede)
	{
		if ($id_busqueda == 1) // si es para edit
		{
			$this->llenar_combobox_sede(2);
		}
		$this->infoBeneficioAdministrativoEspecifica($id_beneficio_adm_sede);
	}
	
	private function infoBeneficioAdministrativoEspecifica($id_beneficio_adm_sede)
	{
		$beneficios_adm_sede = $this->BeneficiosAdministrativosSede->query(
										'SELECT * 
											FROM beneficios_administrativos BA, 
											beneficios_administrativos_sedes BAS, 
											sedes S
											WHERE BA.id = BAS.beneficios_administrativos_id
											AND S.id = BAS.sede_id
											AND BAS.id ='.$id_beneficio_adm_sede);
		$this->set('beneficios_adm_sede',$beneficios_adm_sede);
	}
	
	private function postConsultBeneficioAdministrativo()
	{
		
		$nombre_beneficio_busq = $this->request->data['Consult_Beneficio']['nombre_beneficio_busq'];
		$sede_busq = $this->request->data['Consult_Beneficio']['sede_busq'];
		
		if ($nombre_beneficio_busq == NULL)
		{
			$nombre_beneficio_busq = "*";
		}
		
		$this->redirect(array('action' => 'consult_beneficio_administrativo',$sede_busq,$nombre_beneficio_busq));
		
	}
	
	private function llenar_beneficio_administrativo($sede_id,$nombre_beneficio_adm)
	{
		$strqry = 'SELECT *
					FROM beneficios_administrativos BA, 
					sedes S, 
					beneficios_administrativos_sedes BAS
					WHERE BA.id = BAS.beneficios_administrativos_id
					AND S.id = BAS.sede_id';
		
		
		if($sede_id != 0)
		{
			$strqry = $strqry.' AND S.id = '.$sede_id;
		}
		if ($nombre_beneficio_adm != "*")
		{
			$strqry = $strqry.' AND BA.nombre_beneficio_administrativo LIKE "%'.$nombre_beneficio_adm.'%"';
		}
		$strqry = $strqry.' ORDER BY BA.id ASC';
		$beneficios_adm_sedes = $this->BeneficiosAdministrativosSede->query($strqry);
		$this->set('beneficios_adm_sedes',$beneficios_adm_sedes);
		
	}
	
	private function infoConsultBeneficioAdministrativo($sede_id,$nombre_beneficio_adm)
	{
		$this->llenar_combobox_sede(1);
		$this->llenar_beneficio_administrativo($sede_id,$nombre_beneficio_adm);
		$this->set('nombre_beneficio_adm',$nombre_beneficio_adm);
		$this->set('sede_id',$sede_id);
	}
	
	private function postAddBeneficio()
	{
		if($this->Beneficio->save($this->request->data))
		{
			$beneficio = $this->Beneficio->findAllByNombreBeneficio($this->request->data['Beneficio']['nombre_beneficio']);
			$this->setMessageFlash(1, "Se Agrego el Beneficio", null);
			$this->redirect(array('action' => 'assign_add_beneficio',$beneficio[0]['Beneficio']['id']));
		}
		else
		{
			$this->Session->setFlash(__("No se guardo el Beneficio"));
		}
	}
	
	
}



?>